// 主模板
template <typename PixelType, int Channels>
struct ImageProcessor;

// RGB图像特化
template <>
struct ImageProcessor<uint8_t, 3>
{
    static void process(uint8_t *data, int width, int height)
    {
        // RGB图像处理算法
        std::cout << "Processing RGB image" << std::endl;
    }
};

// 灰度图像特化
template <>
struct ImageProcessor<uint8_t, 1>
{
    static void process(uint8_t *data, int width, int height)
    {
        // 灰度图像处理算法
        std::cout << "Processing grayscale image" << std::endl;
    }
};

// 深度图像特化
template <>
struct ImageProcessor<float, 1>
{
    static void process(float *data, int width, int height)
    {
        // 深度图像处理算法
        std::cout << "Processing depth image" << std::endl;
    }
};

// 使用示例
template <typename T, int C>
void process_image(T *data, int width, int height)
{
    ImageProcessor<T, C>::process(data, width, height);
}